tengo este codigo:
$(function(){ $("#CASA").click(function(){ rsExecute("rs/rs_luci.php","premi",1,function(cc){}); var col=$( this ).css( "background-color" ); setColor(this, 'yellow'); setTimeout(setColor,1000,this,col); }); }); function setColor(obj,clr){ $(obj).css( "background-color", clr ); }rsExecute realiza una llamada a través de ajax. function(cc){} se ejecuta en caso de éxito.
He intentado cambiar el código de esta manera:
$(function(){ $("#CASA").click(function(){ rsExecute("rs/rs_luci.php","premi",1,function(cc){ var col=$( this ).css( "background-color" ); setColor(this, 'yellow'); setTimeout(setColor,1000,this,col); }); }); }); function setColor(obj,clr){ $(obj).css( "background-color", clr ); }pero no funciona porque esto no está definido.
¿Hay alguna forma de pasar este objeto a la función dentro de rsExecute ?
Guárdelo en una variable, tradicionalmente llamada 'eso', y pase esa variable usando el cierre.
$(function(){ $("#CASA").click(function(){ var that = this; rsExecute("rs/rs_luci.php","premi",1,function(cc){ var col=$( that ).css( "background-color" ); setColor(that, 'yellow'); setTimeout(setColor,1000,that,col); }); }); });